package cn.kgc.commons.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.concurrent.TimeUnit;

/**
 * 自定义缓存注解，
 * 先判断缓存中是否有数据，如果有直接返回缓存中的数据
 * 如果没有，只让一个请求调用目标方法获得结果，将结果放入到缓存中
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyCacheable {
       String cacheName() ; //缓存的名字
       String cacheKey();     //缓存的key
       int time() ; //缓存的过期时间
       TimeUnit timeUnit() ; //缓存的过期时间单位
}
